package fr.afcepf.atod19.patisserie.business;

import java.util.ArrayList;
import java.util.List;

import fr.afcepf.atod19.patisserie.data.DataPatisserieImpl;
import fr.afcepf.atod19.patisserie.data.IDataPatisserie;
import fr.afcepf.atod19.patisserie.entity.Patisserie;
/**
 * dev des methodes.
 * @author Stagiaire
 *
 */
public class BusinessPatisserieImpl implements IBusinessPatisserie{
    private IDataPatisserie dataPatisserie;
    
    /**
     * @return the dataPatisserie.
     */
    public IDataPatisserie getDataPatisserie() {
        return dataPatisserie;
    }
    

    /**
     * @param paramDataPatisserie the dataPatisserie to set.
     */
    public void setDataPatisserie(IDataPatisserie paramDataPatisserie) {
        dataPatisserie = paramDataPatisserie;
    }

    /**
     * 
     */
    public BusinessPatisserieImpl() {
       dataPatisserie = new DataPatisserieImpl();
    }


    @Override
    public Integer add(Patisserie paramPat) {
        Integer retour = null;
        List<Patisserie> liste = dataPatisserie.rechercher(paramPat.getNom());
        boolean trouve = false;
        if (liste != null) {
            for (Patisserie patisserie : liste){
                if (patisserie.getNom().equals(paramPat.getNom()) 
                        && patisserie.getDescription().equals(paramPat.getDescription())
                        && patisserie.getPrix() == paramPat.getPrix()
                        && patisserie.getCalorie() == paramPat.getCalorie()) {
                    trouve = true;
                    break;
                }
                        
            }
        }
        if (!trouve) {
            retour = dataPatisserie.ajouter(paramPat);
        }
        System.out.println(retour);
        return retour;
    }

    @Override
    public boolean remove(Patisserie paramPat) {
        Boolean retour = dataPatisserie.manger(paramPat);
        return retour;
    }

    @Override
    public List<Patisserie> find(String paramName) {
        List<Patisserie> retour = dataPatisserie.rechercher(paramName);
        if (retour == null) {
            retour = new ArrayList<>();
        }
        return retour;
    }

}
